import Vue from 'vue'
import Vuex from 'vuex'
import axios from "axios"


Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    navlist:[],
    shoplist:[],
    detailslist:[],
    showlist:{},
    totalPrice:0,
    cartitem:JSON.parse(localStorage.getItem("cart"))||[]
  },
  mutations: {
    // 获取分类列表
    getnavlist(state,item){
      state.navlist=item
      // console.log(state.navlist)
    },
    // 获取商品列表
    getshoplist(state,item){
      state.shoplist=item
      // console.log(state.shoplist)
    },
    // 获取详情页
    getdetails(state,item){
        state.detailslist=item
        // console.log(state.detailslist)
    },
    // 获取详情页数据
    detailsitem(state,item){
      // console.log(item)
      state.showlist={}
      state.detailslist.forEach((ele)=>{
        // console.log(ele) 
        if(ele.data.mtWmPoiId===item){
          state.showlist=ele
        }
      })
      // console.log(state.showlist)
    },
    // 购物车内容
    cartlist(state,item){
      var index=state.cartitem.findIndex((ele)=>{
        return ele.spuId===item.spuId
      })
      if(index!=-1){
        state.cartitem[index].num++
      }else{
        item.num=1
        state.cartitem.push(item)
      }
      state.totalPrice=0
      state.cartitem.forEach((ele)=>{
        state.totalPrice+=ele.num*ele.originPrice
      })
      localStorage.setItem("cart",JSON.stringify(state.cartitem))
      console.log(state.cartitem)
    },
    // 增加商品数量
    addcount(state,item){
      state.cartitem.forEach((ele)=>{
        return ele.spuId===item.spuId
      })
      
      item.num++
      state.totalPrice=0
      state.cartitem.forEach((ele)=>{
        state.totalPrice+=ele.num*ele.originPrice
      })
      localStorage.setItem("cart",JSON.stringify(state.cartitem))
  },
  // 减少商品数量
  minuscount(state,item){
    state.cartitem.forEach((ele)=>{
      return ele.spuId===item.spuId
    })
    if(item.num===1){
      item.num=1;
      return
    }
    item.num--
    state.totalPrice=0
    state.cartitem.forEach((ele)=>{
      state.totalPrice+=ele.num*ele.originPrice
    })
    localStorage.setItem("cart",JSON.stringify(state.cartitem))
  },
  deleall(state){
    state.cartitem=[]
    state.totalPrice=0
    localStorage.setItem("cart",JSON.stringify(state.cartitem))
  }

  },
  actions: {
    // 获取分类列表
    getnavlist(context){
      axios.get(("http://localhost:8080/category.json")).then((resp)=>{
        // console.log(resp.data.data.kingkongList)
        context.commit("getnavlist",resp.data.data.kingkongList)
      }).catch((error)=>{
        console.log(error)
      })
    },
    // 获取商品列表
    getshoplist(context){
      axios.get(("http://localhost:8080/listData.json")).then((resp)=>{
        // console.log(resp.data.data.shopList)
        context.commit("getshoplist",resp.data.data.shopList)
      }).catch((error)=>{
        console.log(error)
      })
    },
    // 详情页数据
    getdetails(context){
      axios.get(("http://localhost:8080/shopdetails.json")).then((resp)=>{
        // console.log(resp.data)
        context.commit("getdetails",resp.data)
      }).catch((error)=>{
        console.log(error)
      })
    },
    // 获取详情页数据
    detailsitem(context,item){
      // console.log(item)
      context.commit("detailsitem",item)
    },
    // 购物网车内容
    cartlist(context,item){
      console.log(item)
      context.commit("cartlist",item)
    },
    addcount(context,item){
      context.commit("addcount",item)
    },
    minuscount(context,item){
      context.commit("minuscount",item)
    },
    deleall(context){
      context.commit("deleall")
    }

  },
  modules: {
  }
})
